docs(cli): rename the spec off axe vrs, hold the wire contract and the id space - #5
Merged
schickling merged 1 commit intoAug 9, 2026
Conversation
`context/cli/spec.md` was extracted from a repository where this tool was a
subcommand called `axe vrs`. It is now its own binary called `intent`, and the
document had not moved: 25 of its invocations named a command no reader can run.
Renamed in this commit, spec.md only:
axe vrs <sub> -> intent <sub> 25 sites (25 -> 0)
Axe / non-Axe -> reworded 11 sites (11 -> 0)
The eight wire-contract sites are deliberately untouched and verified byte-identical
to the previous commit, line numbers included: the seven `axe.vrs.*.vN`
`schema_version` values and the one `<axe-vrs-check-json>` placeholder. Those are
parsed by consumers rather than read by humans, so renaming them would convert a
documentation change into a silent breaking change. One of them points the other way
from the rest — it is produced by an external review backend and only validated here,
so moving it unilaterally would break this tool rather than its consumers.
Two things are held back on purpose.
**The requirement ids are not renamed.** The `AXE.VRS-R*` population spans both
documents — 19 definitions in `requirements.md` and one citation here, at the graph
extraction example. Renaming only the citation would leave it naming a requirement
that does not exist, which `VRS.REQ-R09` forbids in the same commit. The id space is
left uniformly at `AXE.VRS-R`, so `skills/intent.md`'s statement that those ids are
held stable remains true. `requirements.md` is untouched in this commit.
**One reworded line is a judgement, not a rename**, and is worth a reviewer's eye.
The anti-goal "do not create a competing top-level `vrs` CLI until there is evidence
that non-Axe users need it" had its premise removed by the extraction — this *is* the
top-level CLI now. It reads "users need one separate from `intent`", preserving the
anti-goal against a second CLI while dropping a condition that no longer parses.
Restating the tradeoff behind it would be a requirements decision rather than a
rename, so it is flagged rather than made.
Verified by running the checker over `context/` before and after, in place: identical
diagnostics, none introduced or removed. The four remaining warnings are pre-existing
broken links in `requirements.md`, which this commit does not touch. Note that CI's
corpus gate runs `intent check intent` and never reads `context/`, so a green run says
nothing about this diff.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
agent-tool: Claude Code
agent-tool-version: 2.1.220
agent-runtime: Claude Code 2.1.220
agent-session-lookup: unavailable
tooling-profile: dotfiles@unknown-dirty
schickling
marked this pull request as ready for review
August 9, 2026 08:28
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
context/cli/spec.mdwas extracted from a repository where this tool was a subcommand calledaxe vrs. It is its own binary calledintentnow, and the document had not moved — 25 of its invocations named a command no reader can run. This is the spec half of that rename.Read this before approving: the document pair is inconsistent after this change
This PR renames
spec.mdand deliberately does not touchcontext/cli/requirements.md, which is its other half. Until a second change lands, the two documents disagree:spec.md(this PR)requirements.md(unchanged)intent check, 25 renamedaxe vrs check, 14 still unrenamedAxegone, 11 rewordedAxementions remainAXE.VRS-R(1 citation, left alone)AXE.VRS-R(19 definitions, left alone)That inconsistency is created by this PR and is the price of splitting the pass. It is stated here rather than discovered later. The id row is the one thing that is not inconsistent — see below for why that was the point.
What changed — counted, spec.md only
axe vrsAxe/non-Axe35 lines, one file. No reindentation and nothing moved.
The eight held sites are provably untouched
schema_versionvaluesaxe.vrs.*.vN<axe-vrs-check-json>Diffed verbatim against the base commit, line numbers included — identical. These are parsed by consumers rather than read by humans, so renaming them turns a documentation change into a silent breaking change. One points the other way from the rest: it is produced by an external review backend and only validated here, so moving it unilaterally breaks this tool rather than its consumers.
Why the requirement ids are not renamed
The
AXE.VRS-R*population spans both documents — 19 definitions inrequirements.md, one citation inspec.md:238at the graph-extraction example. Renaming only the citation, the single one in the file this PR touches, would leave it naming a requirement that does not exist — whichVRS.REQ-R09(atomic consistency) forbids within a commit. So the id space is left uniformly atAXE.VRS-Rand this PR introduces no id inconsistency at all.That also keeps
skills/intent.md's statement that those ids are held stable true as written, so it correctly needs no edit here.For whoever picks that up: the form the corpus's own rule points at is
INTENT.CLI-Rnn.intent/02-requirements/spec.mdmandates a<PROJECT>.<NODE>semantic namespace — its own examples areVRS,VRS.REQ,CVG.ACT— which is the shapeAXE.VRSalready had. (REQ-R01looks like evidence for a flat prefix but is synthetic fixture content under15-evaluation, not house style.) The atomic unit is the 19 definitions, the citation atspec.md:238, and theskills/intent.mdsentence.One reworded line is a judgement, not a rename
Worth a reviewer's eye:
The extraction removed this anti-goal's premise — this is the top-level CLI now, so a mechanical rename produces "non-Intent users", which parses as nothing. The rewording keeps the anti-goal against a second CLI and drops the dead condition. Restating the tradeoff behind it is a requirements decision rather than a rename, so it is flagged rather than made.
Same category, in
requirements.mdand therefore untouched:T01 Axe subcommand over top-level CLIrecords a choice that has since been reversed, and its justification cannot survive any rename. It needs a decision, not a substitution.Verification — and why CI is not it
CI's corpus gate runs
intent check intentand never readscontext/, so a green run says nothing about this diff. Please do not read the green ticks as review of these changes.What was actually run — the checker built from this repo, over
context/, before and after, in place:Zero diagnostics introduced or removed. The four remaining warnings are pre-existing broken links in
requirements.md, untouched here. (Baselining this by copyingcontext/elsewhere does not work — it breaks the../../intent/relative links and invents warnings. It has to be done in place.)Found while measuring, not fixed
spec.md:63states the default path iscontext/vrs;context/vrsappears 8 times. The corpus is atintent/in this repository. This is a documented default value rather than prose, so it is left alone — but it is a larger correctness hole than anything renamed above.spec.md:75–81) sayvrs check,vrs graph, … without theaxeprefix, so they describe a nonexistent command exactly as the invocations did. Held for a separate commit to keep the counts above independently auditable.requirements.md—../requirements.md,../../../vrs/16-enforcement/,../../../vrs/,../../22-invocation-contract/requirements.md.spec.mdhad its links repointed at extraction;requirements.mddid not.AXE.VRS-Rcitations outsidecontext/clithat the id rename will need to move with it:crates/intent/README.md(2),crates/intent/tests/vrs_check.rs(3, fixture content — renaming the docs does not break these tests),skills/intent.md(1). When the id rename lands,spec.md:238's example andtests/vrs_check.rs:173will illustrate the same thing with different ids — cosmetic, but worth knowing.Draft, and not to be merged by me.
Posted on behalf of @schickling
agent_nameagent_toolagent_tool_versionagent_runtimeagent_session_lookuptooling_profile